
Cracking desde cero para súper newbies 7
Un repaso con el SiCE
Hola amigos!!!, como les va a todos?, espero que bien. Por los mails que estoy recibiendo, veo que este curso les gusta, por lo que seguiré escribiéndolo. En este tutorial crackearemos varios programas y dentro de lo posible, les daré otros programas que se crackean de la misma forma (igual o con pequeñas variaciones) para ir practicando. De ahora en más, nos saltearemos explicaciones básicas ya que vamos por el séptimo capítulo!!!, tienen que saber lo básico de lo estudiado!!!. Iremos tomando un ritmo más rápido y ágil así pienso que las cosas mejorarán. Bueno vamos a crackear!!!
|
Víctima
1:
|
|
Los detalles de nuestra primera VÏCTIMA:
| Víctima: |
Password
Keeper v5.7
|
| URL: | |
| Descripción: |
Para
organizar tus claves
|
| Tipo de Protección: |
Serial y
una nag horripilante al iniciar.
|
| Objetivo |
Obtener un
número de registro válido.
|
| Herramientas |
SoftIce 3+, papel y lápiz.
|
A este programa, le doy 5 puntos sobre 10. Fue de mi agrado aunque no es gran cosa, les servirá a los que no tienen buena memoria ya que solo tendrán que memorizar una clave, la de acceso a la base de datos donde estarán todas las otras claves que ustedes quieran. No tuve tiempo de probarlo mucho pero algo he visto. Su protección da lástima, ya verán que con un leve esfuerzo podremos sacar un serial válido y registrar el programa.
Ejecutémoslo y nos escupe una nag por un tiempo que parecería más de lo que ese programa de tan pequeño tamaño puede demorar en cargar. De hecho es así, ya que esta nag no aparece en la versión registrada. Pues ¿quieren que aparezca esta nag?, yo no así que vamos a registrar el programa. Help/Register y nos aparecerá esta ventana:

Estos son los datos que introducí así que el programa calculará mi serial a través de mi Name y la Organización que haya escrito. Ponemos siguiente y como era de esperar nos aparece la ventana de "Su número de serie es incorrecto, bla bla bla bla, póngase en contacto con mis creadores y pague por mi ya!!!". Al diablo!!!.[Ctrl+D] y al SiCE. ¿Cual Break Point ponemos?. Pongamos 3. Bpx messageboxa, bpx getdlgitemtexta, bpx getwindowtexta. A ver cual pica. Probemos. Ponemos OK y salta al SiCE, picó Getdlgitemtexta. Recuerdan que el mensaje de error era llamado (en este caso) por 2 razones. 1 el nombre y 2 la organización. Como a nosotros nos interesa el serial le damos a F5 2 veces para no seguirle la pista al Nombre ni a la Organización. Apareceremos en la user32.dll ya que aquí está la función. No nos importa meternos en las dlls por lo que presionamos F12 o F11 una vez para ir al lugar del código dentro del ejecutable del programa donde se hizo la llamada a Getdlgitemtexta. Luego vamos traceando con F10 y pasaremos por varios lugares interesantes. F10 más o menos 20 veces y apareceremos en este lugar:
|
Creo que ya está claro lo que haremos. Estamos parados sobre la comparación de nuestros dos seriales, el generado por el programa y el que introducimos. ¿Y que era lo que teníamos que hacer en estos casos?. D ebx, nada, d eax, nada. ¿Pero aquí tendrían que haber aparecido nuestros seriales?. En estos casos usaremos el comando ?. Escribimos ?ebx, si, es el serial que introducimos!!!, ?eax, esto tiene pinta de ser el serial correcto. Lo anotamos, lo escribimos sin los ceros del principio y..
.
Si!!!, lo logramos!!!. Esta misma técnica les servirá para registrar RGB editor for Windows 95/NT, Battle Star v2.8, Reminders v3.5, en fin, los 27 programas de Software Design disponibles en http://www.gregorybraun.com/. Así que a practicar!!!. Espero que los crackeen toditos. Yo he crackeado como 6 ya que me aburrí y los dejé a todos esperando. Pero a ustedes seguro que les vendrá bien hacer un pequeño repasito con el SiCE.
|
Víctima
2:
|
|
Aquí van los detalles:
| Víctima: |
RainDrops
|
| URL: | |
| Descripción: |
Screensaver
que simula la caída de lluvia en su escritorio.
|
| Tipo de Protección: |
Caduca
luego de 10 días de concluida la instalación.
|
| Objetivo |
Obtener un
número de registro válido.
|
| Herramientas |
SoftIce 3+, papel y lápiz.
|
De la existencia de este programa me informó Profesor X, gracias a él están leyendo esto que les servirá para ver una parte importante del SiCE. Gracias Profe!!!.
El programa no me gustó mucho pero nos servirá para practicar, como casi todos los programas shareware que hay por Internet. Vamos a crackearlo.
Vayan a las Propiedades de pantalla/Protector de pantalla/Raindrops y aprieten el botón de configuración. Ya se puede ver claramente que podemos introducir nuestro número de serie. Para hacerlo hagan clic en el icono de la llave y nos aparecerá esta ventana:
Aquí
nos dice todo. Este protector de pantalla es shareware y caducará dentro de
diez días. Pero que podemos pagar 4.99 dólares por él y registrarnos. Si les gusta
el Screen Saver, regístrense pero estamos aquí para crackear.
Rellenen los datos que les pide. Yo lo haré como se muestra en la imagen.
Apretamos Unlock screensaver y como era de esperar "Invalid
Registration Data". Podríamos poner un Break Point en
Messageboxa, getwindowtexta o getdlgitemtexta pero usaremos el Break Point bueno
o sea hmemcpy. Yo lo utilizo el 80% de las veces.
Así que [Ctrl+D] entramos al SiCE. Luego ponemos bpx
hmemcpy o bpxhmemcpy. Es lo mismo ponerlo
todo junto que separado por un espacio igual que poner d
eax o deax, etc. Pusimos el bpx,
ahora ponemos aceptar y nos vamos directo al SiCE. Primero F5 para no seguirle
la pista al Nombre. Ahora estamos en la kernell32.dll así que presionamos F12
para ver quien hizo la llamada a hmemcpy. Luego de apretar F12 una vez nos
pasamos por la user32.dll. Para entrar al código dentro del ejecutable del
ScreenSaver hay que apretar F12 7 veces en total. Luego vamos traceando con F10
más o menos 25 veces. Si no se la quieren hacer tan difícil, aprieten F12 5 veces
más y luego nos paramos encima de la call con algunos F10. Hay varias
formas de llegar al mismo objetivo. Llegaremos a este punto:
| :0048F78C 8B45FC
mov eax, dword ptr [ebp-04] :0048F78F 50 push eax :0048F790 8D55F8 lea edx, dword ptr [ebp-08] :0048F793 A124234A00 mov eax, dword ptr [004A2324] :0048F798 8B00 mov eax, dword ptr [eax] :0048F79A 8B80D8020000 mov eax, dword ptr [eax+000002D8] :0048F7A0 E84FFEFAFF call 0043F5F4 :0048F7A5 8B45F8 mov eax, dword ptr [ebp-08] :0048F7A8 5A pop edx |
| :0048F7A9 E8DE020000 call 0048FA8C<------------------------------Llama a la rutina de comprobación |
| :0048F7AE 84C0 test al, al<---------------------------------Compara
si el flag devuelto es cero :0048F7B0 0F84EE000000 jz 0048F8A4<---------------------------------Si es cero nos vamos a 0048F8A4 :0048F7B6 33C0 xor eax, eax :0048F7B8 55 push ebp :0048F7B9 6883F84800 push 0048F883 |
Bien. Vemos que hay una call encima de test al, al. Como les muestro, test al, al compara si el flag devuelto por la call es cero. Los flags son como indicadores que dicen o verdadero(1) o falso(0). Aquí compara si el número de serie introducido es falso y de ser así nos vamos al mensaje de error. Pero, ¿como se que este es el salto que decide todo?. Fácil. En este caso el flag devuelto por la call será cero ya que introducimos un número de registro inválido. Lo que podemos hacer es invertir este flag para que sea 1. ¿Cómo?. Muy fácil, en el SiCE debes escribir esto r fl z. Luego aprieta F5 para salir y verás que aparece la ventanita de "Gracias por registrarse". Si no quieres, no pruebes ya que tendrás que volver a este punto.
Estábamos en la call que llama a la rutina de comprobación. Con la call nos vamos a la dirección 0048FA8C, es en esta dirección donde se realizan las operaciones de cálculo del serial. Para continuar la búsqueda de nuestro serial tendremos que entrar en la call. Nos paramos encima de ella y apretamos F8. Estamos dentro de la call. A tracear!!!. Ahora tenemos que ir dándole a F10. Apriétenlo más o menos 94 veces (ufff!!!). En el camino pasaremos por varios lugares interesantes como este:
| :0048FAE3 E858F1FEFF
call 0047EC40 :0048FAE8 A178224A00 mov eax, dword ptr [004A2278] :0048FAED 8B00 mov eax, dword ptr [eax] :0048FAEF 8B4054 mov eax, dword ptr [eax+54] :0048FAF2 E83943F7FF call 00403E30<------Llama a la rutina de comprobación de la logitud del s/n |
| :0048FAF7 83F807 cmp eax, 00000007<-----------------Ve si nuestro serial tiene 7 caracteres |
| :0048FAFA 7E2F
jle 0048FB2B<-------------------------Si
es menor nos vamos al error :0048FAFC A178224A00 mov eax, dword ptr [004A2278] :0048FB01 8B00 mov eax, dword ptr [eax] |
Estas líneas de código nos van dando pistas sobre como tendrá que ser el serial. Ya sabemos que tiene que tener 7 caracteres. Si es menor nos vamos al mensaje de error. Pero después de apretar F10 las 94 veces apareceremos aquí:
| :0048FB98 33D2
xor edx, edx :0048FB9A 52 push edx :0048FB9B 50 push eax :0048FB9C 8D55E4 lea edx, dword ptr [ebp-1C] :0048FB9F B820000000 mov eax, 00000020 :0048FBA4 E89B8BF7FF call 00408744 :0048FBA9 8B55E4 mov edx, dword ptr [ebp-1C]<------------Interesante :0048FBAC 8B45F8 mov eax, dword ptr [ebp-08]<------------Interesante |
| :0048FBAF E88C43F7FF call 00403F40<-----------------------------------Nos paramos aquí |
| :0048FBB4 7504
jnz 0048FBBA :0048FBB6 B301 mov bl, 01 :0048FBB8 EB02 jmp 0048FBBC :0048FBBC 33C0 xor eax, eax :0048FBBE 5A pop edx :0048FBBF 59 pop ecx :0048FBC0 59 pop ecx :0048FBC1 648910 mov dword ptr fs:[eax], edx :0048FBC4 EB0C jmp 0048FBD2 |
De todas las zonas interesantes por las que pasamos. Y en las zonas interesantes siempre veíamos el valor de los registros. D eax, si!!!, es el serial que introducimos!!!. D ebx, nada.D ecx, nada. D edx, esto tiene pinta de serial, tiene 7 caracteres. Probemos, lo escribimos todo en mayúsculas y...

Lo logramos!!!!. Muy bien. Con esta misma técnica podrán crackear los 4 ScreenSavers disponibles aquí. Esto les servirá para practicar y para entretenerse un poquito :-). Espero que los crackeen todos. Estos si los he crackeado toditos ya que solo son 4. De ser más me hubiera aburrido.
|
Víctima
3:
|
|
Aquí van los detalles:
| Víctima: |
A Smaller
Image 1.0
|
| URL: | |
| Descripción: |
Para
reducir en tamaño de las imágenes!!!!
|
| Tipo de Protección: |
Serial, y
nag al empezar.
|
| Objetivo |
Obtener un
número de registro válido.
|
| Herramientas |
SoftIce 3+, papel y lápiz.
|
Ahh byte mio!!!, otro programa estúpido. Para reducir el tamaño de las imágenes!. A quien se le pudo ocurrir programar esto!. Por que casi todos los programas que crackeamos tienen que ser horribles!, nada bien hacen los programadores?. Espero que mejoren para un futuro muy cercano.
Ejecutamos el programa (por si no saben, el ejecutable está en el directorio C:\Dondelohayasinstalado\bin\ASmallerImage.exe) y nos escupe una horripilante ventana "reclamando" por nuestro número de serie. Yo la llenaré así:

Register y banggg,

Yo casi siempre cuando busco seriales uso hmemcpy. Siempre pica y los seriales por lo menos yo los encuentro más rápido. [Ctrl+D] entramos al SiCE, bpx hmemcpy, F5. Luego le pegamos a Register y nos vamos directo al SiCE. F5 para no seguirle la pista al nombre. Estamos en las dll y esto no nos interesa por lo que presionamos F12 más o menos para ir al lugar donde se hizo la llamada dentro del ejecutable del programa. Llegaremos a este punto:
| :004265F5 51 push ecx :004265F6 50 push eax :004265F7 8B4D10 mov ecx, dword ptr [ebp+10] :004265FA E881D2FFFF call 00423880 :004265FF 50 push eax :00426600 56 push esi |
| :00426601 FF1550CA4300 Call[USER32!GetWindowTextA]<-------------Interesante no? |
| :00426607 6AFF push FFFFFFFF<-----------------------------------Aquí aparecemos |
| :00426609 8B4D10
mov ecx, dword ptr [ebp+10] :0042660C E847D2FFFF call 00423858 :00426611 EB0B jmp 0042661E :00426613 8B4510 mov eax, dword ptr [ebp+10] :00426616 FF30 push dword ptr [eax] :00426618 56 push esi :00426619 E853FCFFFF call 00426271 :0042661E 5F pop edi :0042661F 5E pop esi :00426620 5D pop ebp :00426621 C20C00 ret 000C<--------------------------------------------Retorno :00426624 55 push ebp :00426625 8BEC mov ebp, esp :00426627 56 push esi |
Como siempre, llegamos a este punto y tenemos que tracear con F10. Más o menos apriétenlo 62 veces. Siempre busquen saltos tipo jz o jnz que puedan ser interesantes. Llegarán a este punto:
| :004013D4 E8D7980000
call 0040ACB0<-----------------------Llama
a la rutina de comprobación :004013D9 83C404 add esp, 00000004<--------------hace una serie de operaciones para culminar :004013DC B860494300 mov eax, 00434960 con el cálculo del serial :004013E1 8B555C mov edx, dword ptr [ebp+5C] :004013E4 8A08 mov cl, byte ptr [eax] :004013E6 3A0A cmp cl, byte ptr [edx] |
| :004013E8 751A jnz 00401404<-------------------------Muestra o no el mensaje de error? |
| :004013EA 0AC9
or cl, cl :004013EC 7412 jz 00401400 :004013EE 8A4801 mov cl, byte ptr [eax+01] :004013F1 3A4A01 cmp cl, byte ptr [edx+01] :004013F4 750E jnz 00401404 :004013F6 83C002 add eax, 00000002 :004013F9 83C202 add edx, 00000002 |
Esta parece una zona interesante. Vamos a rastrear el contenido de los registros. D eax, este es un número raro, lo anotamos y lo escribimos (el cero del principio también)...

Con esta técnica podrán registrar casi todos los programas disponibles en http://www.trivista.com/. Hay algunos que no serán así de fáciles pero que creo que podrán. Así que a practicar!!!.
|
Víctima
4:
|
|
Aquí van los detalles:
| Víctima: |
dIRC
v2.2.0.1
|
| URL: | |
| Descripción: |
Programa de
chat parecido al mIRC.
|
| Tipo de Protección: |
Caduca a
los 30 días y serial
|
| Objetivo |
Obtener un
número de registro válido.
|
| Herramientas |
SoftIce 3+, papel y lápiz.
|
Por fin un programa bueno que crackear!!!. Después de tanta desilusión, nos encontramos con algo realmente bueno. Prueben este programa, le doy 7.5 puntos sobre 10. Ahora vamos a ver cuantos puntos le damos a su protección!!!.
Lo ejecutamos, vamos al menú Help/Purchase... y aparecerá una ventana. Yo llenaré los datos como se muestra en la imagen:

Pulsamos OK y no pasa nada!, se cierra la ventana!. Podríamos pensar que los programadores sabían lo que hacían cuando hicieron esta protección, pero como siempre, las apariencias engañan. [Ctrl+D] entramos al SiCE, bpx hmemcpy, F5 para salir del SiCE, pulsamos OK y directo al SiCE!!. Recuerden que primero siempre oprimimos F5 2 veces para no seguirle la pista al Name ni a la Company. Estamos en la kernell32.dll, esta zona no nos interesa así que presionamos F12 más o menos 8 veces hasta que veamos que estamos dentro del ejecutable del programa. Ahora a tracear!!!. Démosle a F10 más o menos 56 veces. No se preocupen por si en algunos momentos salimos del SiCE ya que aparecerá instantáneamente. Después de darle 56 veces a F10 apareceremos aquí:
| :0047D0CB 50
push eax :0047D0CC FFD3 call ebx :0047D0CE 83C410 add esp, 00000010 :0047D0D1 8D4C2410 lea ecx, dword ptr [esp+10] :0047D0D5 85C0 test eax, eax :0047D0D7 0F94C3 sete bl :0047D0DA E839BF0200 Call 004A9018<------------------------Llama a la rutina de comprobación :0047D0DF 84DB test bl, bl<---------------------------Compara si el flag devuelto es cero |
| :0047D0E1 0F8451010000 jz 0047D238<---------------------------De ser así, chico malo. |
| :0047D0E7 8D4C2418
lea ecx, dword ptr [esp+18] :0047D0EB E8CABF0200 Call 004A90BA :0047D0F0 6A00 push 00000000 :0047D0F2 6801100000 push 00001001 :0047D0F7 6828B24E00 push 004EB228 :0047D0FC 8D4C2424 lea ecx, dword ptr [esp+24] :0047D100 C744244000000000 mov [esp+40], 00000000 |
Como en la víctima 2, puedes invertir el flag devuelto por la call escribiendo r fl z y aparecerá la ventana de gracias por registrarse. Pero vamos a averiguar nuestro número de serie. D eax, nada. D ebx, nada. D ecx, nada. D edx, este es un número bastante rarito no?. Lo anotamos, lo escribimos y...

Genial!!! si no encontraron el número y tienen que hacer todo de nuevo les doy una pista, el mío empieza por 63595-6796-34... Aquí me mataron, no encontré ningún programa que se crackee así. Pero bueno, busquen ustedes, ya tienen mucha tarea que hacer.
|
Despedida:
|
|
Aquí culmina el manual con más ejercicios prácticos que he hecho. Gracias a Profesor X por toda su ayuda, a Karpoff por su gran trabajo en su page y por su apoyo, a K-FoR por supuesto, Mr.Mauve, por darme una cálida bienvenida en el canal de WKT y por su ayuda en algunas áreas, CrkViz por hacerme pasar tan buenos ratos con las joditas que te hago, y a ustedes que leen mis manuales. Saludos a todos y,
A S T A L A V I S T A
Página oficial del grupo K-FoR: http://pagina.de/kfor
Mi dirección de
E-Mail: dek_oin@hotmail.com